Method and system for content delivery with a beacon

ABSTRACT

Embodiments of a method and system for improving delivery of content to a user device can include: determining a resource identifier comprising beacon data associated with a beacon, wherein the resource identifier is associated with a content identifier identifying the content; broadcasting the resource identifier from the beacon to the user device; processing a resource request from a verifying entity, the resource request associated with the resource identifier; and transmitting a response to the resource request based on the first content identifier.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/644,428 filed 7 Jul. 2017, which claims the benefit of U.S.Provisional Application No. 62/416,344 filed 2 Nov. 2016 and U.S.Provisional Application No. 62/359,543 filed 7 Jul. 2016, each of whichis incorporated in its entirety by this reference.

This application is related to U.S. application Ser. No. 15/590,939filed 9 May 2017, which claims the benefit of U.S. ProvisionalApplication No. 62/334,115 filed 10 May 2016 and U.S. ProvisionalApplication No. 62/416,395 filed 2 Nov. 2016, and which is acontinuation in part of U.S. application Ser. No. 15/446,165 filed 1Mar. 2017, which is a continuation of U.S. application Ser. No.15/253,376, filed 31 Aug. 2016, which claims the benefit of U.S.Provisional Application No. 62/213,467 filed 2 Sep. 2015, each of whichis incorporated in their entireties by this reference.

This application is additionally related to U.S. application Ser. No.15/620,014 filed 12 Jun. 2017, which is a continuation of U.S. patentSer. No. 15/288,302, filed 7 Oct. 2016, which is a continuation of U.S.patent application Ser. No. 14/956,209, filed 1 Dec. 2015, which is acontinuation of U.S. patent application Ser. No. 14/463,582, filed on 19Aug. 2014, now issued as U.S. Pat. No. 9,202,245, which claims thebenefit of U.S. Provisional Application No. 61/867,493, filed on 19 Aug.2013 and to U.S. Provisional Application No. 61/867,498, filed on 19Aug. 2013, each of which is incorporated in their entireties by thisreference.

TECHNICAL FIELD

This invention relates generally to the wireless communication field,and more specifically to a new and useful method and system forproviding content in the wireless communication field.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of a variation of the method.

FIG. 2 is a schematic representation of a variation of the method.

FIG. 3 is a schematic representation of a variation of the method.

FIG. 4 is a schematic representation of a variation of generating beaconanalytics.

FIG. 5 is a schematic representation of a variation of the method.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the inventionis not intended to limit the invention to these preferred embodiments,but rather to enable any person skilled in the art to make and use thisinvention.

1. Overview.

As shown in FIGS. 1-3 and 5, embodiments of a method 100 for delivery ofcontent to a user device can include: determining a resource identifierincluding beacon data associated with a beacon, where the resourceidentifier is associated with a content identifier identifying thecontent S110; broadcasting the resource identifier from the beacon tothe user device S120; processing a resource request from a verifyingentity, the resource request associated with the resource identifierS130; and transmitting a response to the resource request based on thefirst content identifier S140. Embodiments of the method 100 canadditionally or alternatively include generating beacon analytics S150,providing an interface to an entity, and/or other suitable processes.

The method 100 functions to leverage beacon technology to facilitatecentralized control (e.g., at a remote beacon control system) of content(e.g., contextualized content) delivered to user devices. The method 100can additionally or alternatively function to dynamically modifyresource identifiers (e.g., broadcasted by a beacon) to collect beacondata (e.g., sensor data, traffic data) for generating beacon analytics,to increase security, and/or for other suitable purposes. Further, themethod 100 can optionally function to enable a first party (e.g. abeacon manufacturer, an entity developing software executable by abeacon, etc.) to centrally manage content deliverable to user devices inorder to ensure compliance with verifying entities (e.g., an entity thatverifies the legitimacy of content before delivery to the user, a webbrowser, a network administrator, an internet service provider, etc.).

An example of a first party includes Estimote™, or any other suitableentity associated with a system that the content requests are routedthrough, and/or other suitable entities. An example of a verifyingentity is Google™, accessible through Google's Physical Web™. As such,beacon owners (e.g., an entity controlling a beacon, beacon permissions,etc.) can confidently manage deployed beacons and delivered contentremotely, such as at a beacon owner interface. For example, merchants(e.g., Target™) can be a beacon owner and own one or more sets ofbeacons. Content providers can create and dynamically manage beaconcampaigns (e.g., for delivering content) remotely, such as at a contentprovider interface and/or content provider device. Content providers caninclude any of: an entity providing content to be served to a user, abeacon owner, a secondary entity (e.g., an entity associated with thebeacon owner and serving content by leveraging beacons of the beaconowner), a content provider device, an entity associated with thephysical space, merchant, and/or product, and/or any other suitableentity. For example, content providers can include advertising entities,product companies (e.g., Coke™), or other entities. Further, users(e.g., an individual associated with a user device communicating withbeacons, a customer interfacing with beacons located at a retail store,etc.) can receive content (e.g., associated with a beacon) at a userdevice without the user device needing to download any particularapplication.

The method 100 is preferably implemented with systems described in U.S.application Ser. No. 15/253,376, filed 31 Aug. 2016, and U.S.application Ser. No. 14/463,582, filed 19 Aug. 2014, which areincorporated in their entireties by this reference, but can beadditionally or alternatively implemented with one or more: beacons,processing systems (e.g., remote systems) associated with first parties,beacon owners, content providers, verifying entities, and/or othersuitable entities, and/or any other suitable components. The method 100and system 200 can optionally be applied to applications independent ofbeacon technology.

One or more instances and/or portions of the method 100 and/or processesdescribed herein can be performed asynchronously (e.g., sequentially),concurrently (e.g., in parallel; concurrently on different threads forparallel computing to improve system processing ability; etc.), intemporal relation to a condition, and/or in any other suitable order atany suitable time and frequency by and/or using one or more instances ofthe system 200, elements, and/or entities described herein. However, themethod 100 and/or system 200 can be configured in any suitable manner.

2. Benefits.

The technology can confer several benefits over conventional systems.First, the technology can include processes necessarily rooted incomputer technology for overcoming problems specifically arising in therealm of computer networks (e.g., Internet technology). In an example,the technology can enable dynamic generation of resource identifiers(e.g., URLS associated with a first party Internet domain, etc.) basedon content identifiers (e.g., URLS associated with a content providerInternet domain, etc.) using identifier generation rules configured toimprove extraction and analysis of contextual data (e.g., beacon data,user device data, etc.) to overcome issues with tracking and/orpersonalizing content delivery through a beacon network (e.g., operatingin the Physical Web).

Second, the technology can confer an improvement to the functioning ofcomputer-related technology. For example, the technology can amount toan inventive distribution of functionality across a network of one ormore: beacon control systems (e.g., acting as a centralized systemincluding a content database with sets of content identifiers associatedwith sets of beacons identifiers; determining identifier generationrules for generating resource identifiers enabling dynamic selection ofcontent to be delivered based on contextual data such as beacon sensordata; etc.), beacons (e.g., generating and/or broadcasting a resourceidentifiers associated with content identifiers for content provided bycontent providers; supplying contextual data to improve personalizedcontent delivery; etc.), user devices (e.g., acting as a communicationintermediary between a beacon, a verifying entity, and a beacon controlsystem; acting as a device where content can be presented; etc.),verifying entities (e.g., acting as a verification intermediary betweenbroadcast of a resource identifier to a user device and presentation ofcontent at the user device; etc.), and/or other suitable components.

Third, the technology can facilitate performance of functions notpreviously performable (e.g., improving upon processes). For example,the technology can apply computer-implemented rules (e.g., identifiergeneration rules; resource request processing rules such as dataextraction rules for beacon data extraction from resource identifiers,content identifier selection rules for selecting a content identifierfrom a set of content identifiers for generating a response to aresource request; user preference rules; storage and retrieval rules inrelation to beacon data, identifiers, and/or other suitable data; etc.)to confer improvements in beacon technology (e.g., beacons, beaconcontrol systems, etc.) for delivering content.

Fourth, the technology can improve beacon network security, such asthrough applying identifier generation rules to generate resourceidentifiers including an HTTPS URL to be communicated across a beaconcontrol system, beacons, user devices, verifying entities, and/or othersuitable components. In another example, beacons can be associated withbeacon communication protocols with enterprise-grade encryption andsecurity algorithms, where the beacon communication protocol associatedwith communication of a resource identifier can be identified throughthe resource identifier (e.g., through a protocol identifier included inthe resource identifier) for verification.

Fifth, the technology can improve digital privacy associated withdelivering content with a beacon (e.g., operating with the PhysicalWeb), such as by filtering content delivered to a user device based onpermission-based user preferences for types of content, type of contentidentifiers, types of content presentation, and/or through othersuitable means.

Sixth, the technology can transform a particular article to anotherstate or thing. For example, the technology can transform one or moreof: beacons (e.g., controlling beacons through wireless digital commandsgenerated and transmitted by a beacon control system; controlling thebeacon to disable or activate broadcasts of resource identifiers;controlling the beacon to update firmware and/or software; controllingresource identifier generation, sensor sampling, and/or other beaconprocesses; managing a set of beacons; controlling a beacon to operatebetween master and slave modes in different contexts, such as based onbeacon data extracted from a resource request; etc.), a user device(e.g., activating the user device to present content, as facilitated bytransmission of a corresponding resource identifier from a beacon to theuser device; etc.), and/or other suitable components.

Seventh, the technology can leverage specialized computing devices(e.g., beacons including sensors, wireless communication systemsconfigured to communicate with other beacons and/or a centralized beaconcontrol system, and/or other suitable components) in facilitatingimprovements in content delivery. However, the technology can provideany other suitable benefits in the context of using non-generalizedsystems for delivering content.

3. Method.

Determining a resource identifier including beacon data associated witha beacon S110 functions to determine an identifier to be broadcasted byone or more beacons. A resource identifier is preferably associated with(e.g., redirects to; includes; stored in association with, such as forlater retrieval and/or selection amongst a set of a content identifiers;based upon, such as through modifying the content identifier URL; etc.)one or more content identifiers identifying content provided by contentproviders (e.g., a single content provider; multiple content providers;etc.) and/or other suitable entity. Content identifiers are preferablystored in association with beacon identifiers (e.g., to enable retrievalof the relevant content identifier in response to extracting a beaconidentifier from a resource request; etc.), but can be otherwiseassociated.

Resource identifiers can include any of a: uniform resource identifier(URI) (e.g., uniform resource locator, universal resource name, etc.),IP address, codes (e.g., bar code, QR code, datamatrix code, UPC code,etc.), titles, descriptions, associated media (e.g., favicons, images,video, audio, etc.), and/or any suitable resource identifyinginformation. Resource identifiers can be used as: a website locator(e.g., for linking to a website), application locator (e.g., forlaunching an application), a database access resource, a file transferresource, an email resource, a pointer to content, and/or for anysuitable purpose. In variations, the resource identifier can includebeacon data (e.g., beacon identifiers, sensor data, traffic data), userdevice data (e.g., data sampled at a sensor of a user device), randomcharacters, and/or any suitable data. Sensor data (e.g., sampled atbeacon sensors, at user device sensors, etc.) can include data from anyof: motion sensors (e.g., gyroscopes, accelerometers, magnetometers,etc.), temperature sensors, optical sensors (e.g., image sensors, lightsensors, etc.), location sensors, audio sensors, volatile compoundsensors, humidity sensors, depth sensors, touch sensors, impedancesensors, biometric sensors (e.g., fingerprint sensors, etc.), powersensors, and/or any other suitable sensors. Resource identifiers can bestatic or dynamic. Additionally or alternatively, resource identifierscan be configured in any manner analogous to content identifiers and/orother suitable identifiers, and vice versa. In a first specific example,the content identifier can include a first URI associated with a contentprovider domain, and the resource identifier can include a second URIassociated with a first party domain. In a second specific example, aresource identifier URI can be generated for media content submittedthrough an interface (e.g., where a content provider uploads the mediacontent directly from their desktop). However, identifiers can beassociated with any suitable domains and/or entities, and can beconfigured in any suitable manner.

Resource identifiers are preferably generated using one or more rules(e.g., generation rules for identifiers, for other suitable data, etc.)based on one or more of: a temporal indicator (e.g., generating resourceidentifiers at a time interval, during a time period, etc.), beacon data(e.g., generating a resource identifier in response to sampling athreshold size of sensor data; generating a resource identifierincluding a beacon identifier, sensor data, associated beacon protocolidentifiers, associated identifiers such as user accounts and/or contentidentifiers, and/or other suitable data; etc.), user device data,identifiers (e.g., beacon identifier, application identifier, contentprovider identifier, beacon owner identifier, etc.), encryptionparameters (e.g., for encrypting portions of the resource identifier),random generators (e.g., for appending random strings), and/or anysuitable criteria.

Different rules can be applied to different beacons, content, userdevices, and/or other suitable entities, which can confer improvementsto the system 200 by improving content delivery (e.g., through improvedpersonalization of content to users; through improved management ofcontent delivery campaigns with beacons by content providers; etc.),and/or other suitable aspects. For example, a first sensor data encodingrule can be used to determine resource identifiers for a beaconincluding a plurality of sensor types, and a second sensor data encodingrule can be used to determine resource identifiers for a beaconincluding a single sensor type (e.g., where different encodingmechanisms can be applied to include and/or select sensor data whilecomplying with a URL size requirement, etc.). The rules can bedetermined (e.g., obtained, retrieved, generated, executed, etc.),stored (e.g., in association with identifiers, contextual data, etc.),and/or otherwise processed by any suitable component of the system 200.

In a first variation, the method 100 can include determining a resourceidentifier including beacon data based on the beacon identifier (e.g.,where the resource identifier includes the beacon identifier; where aidentifier generation rule associated with the beacon identifier isretrieved based on the beacon identifier and utilized to determine theresource identifier; etc.). In a first specific example, the resourceidentifier includes a URI (e.g., web address) including: a first partyhost (e.g., linking to a first party server system, such ashttp://estimote.com) and a path including a beacon identifier(associated with a beacon on the first party server system). The path,path parameters, and/or path fragment (e.g., named anchor) canoptionally include encoded beacon data, such as sensor data, locationdata, traffic data, or other data. In a specific example, resourceidentifiers can be generated in a URL form of:“https://example.info/vvxxxyyyzzz”, where vv includes a beaconcommunication identifier (e.g., version, type, associated operatingsystem, etc.), xxx includes a beacon identifier, yyy includes beacondata (e.g., encoded sensor data, traffic data, etc.), and zzz includesrandom characters, where the number of characters associated with a datatype can vary, and/or other suitable aspects of the URL can vary. In asecond specific example, the beacon can be associated with a beaconcommunication protocol identified by a protocol identifier, anddetermining a resource identifier can include: determining an identifiergeneration rule based on a resource identifier condition (e.g., a URLrestriction limiting URL size to 17 byes; requiring public URLs;requiring HTTPS URLS; etc.) defined by the beacon communicationprotocol; generating a resource identifier including the protocolidentifier (e.g., based on an identifier generation rule) and/or othersuitable beacon data, according to the resource identifier condition.However, determining resource identifiers including beacon data can beperformed in any suitable manner.

In a second variation, resource identifiers can be modified todistinguish from other broadcasted resource identifiers (e.g., tofacilitate downstream resource identifier processing). In a specificexample, the method 100 can include storing a beacon data rule at afirst beacon identified by a first beacon identifier, and applying thebeacon data rule to modify the beacon identifier portion of a firstresource identifier broadcasted by the first beacon, such as in responseto receiving, from a second beacon, a second broadcasted resourceidentifier including a second beacon identifier matching the firstbeacon identifier. However, resource identifiers can be generated basedon other resource identifiers in any suitable manner.

In a third variation, a resource identifier can be associated with acontent provider domain. For example, determining a resource identifiercan include appending and/or otherwise including beacon data, user data,real-time analytics, and/or other suitable data to a content identifierassociated with a content provider host (e.g., where the contentprovider can extract the data in response to a user accessing thecontent associated with the resource identifier; etc.). In a specificexample, the identifier generation rules can be selected based oncontent provider preferences for data types to be tracked. However,resource identifiers can be associated with any suitable entity in anysuitable manner.

In a fourth variation, generation rules can include temporal rulescontrolling the timing (e.g., at noon, during night time, during periodsof high user traffic, etc.), frequency (e.g., generate resourceidentifier and/or append characters every N seconds, etc.), and/or othertemporal parameters associated with resource identifier generation.

Identifier generation rules applied by a beacon and/or beacon controlsystem can be updated by the beacon control system, beacon, and/or othersuitable component. In a first example, the method 100 can include:determining a second identifier generation rule at the beacon controlsystem based on beacon data extracted from a resource request associatedwith a resource identifier generated with a first identifier generationrule; and transmitting the second identifier generation rule to abeacon, where the second identifier generation rule can be applied inany suitable processes (e.g., resource identifier generation forsubsequent broadcasting and resource request processing; etc.) of themethod 100. In a second example, the method 100 can include, selecting amode of a set of modes (e.g., selecting a mode where motion sensor datais included in the resource identifier versus temperature sensor data;etc.) for applying an identifier generation rule to determine resourceidentifiers at the beacon, where selection of a mode can be based on anysuitable data, such as data used for determining resource identifiers(e.g., selecting a state of charge data transfer mode in response to thebeacon's processing system detecting a state of charge falling below athreshold; etc.). However, updating identifier generation rules can beperformed in any suitable manner.

Generation rules are preferably stored at a beacon (e.g., to generateresource identifiers) and a beacon control system associated with afirst party (e.g. to facilitate resolution of beacon data from aresource request comprising the resource identifier; etc.), but canadditionally or alternatively be stored at any suitable component. In anexample, generation rules can be transmitted to the beacon from a beaconowner device, user device (e.g., through an application in communicationwith a first party processing system), directly from a beacon controlsystem (e.g., associated with a first party), and/or any component.Generating a resource identifier is preferably performed by a beacon,but can additionally or alternatively be performed by a beacon controlsystem (e.g., where the beacon control system can transmit resourceidentifiers directly and/or indirectly to beacons), and/or any suitablecomponent. In an example, a first and second identifier generation rulecan be determined by the beacon control system, where the beacon controlsystem can generate a resource identifier using the first identifiergeneration rule (e.g., https://example.info/[broadcast preferences]),and the beacon can update the resource identifier using the secondidentifier generation rule (e.g., https://example.info/[broadcastpreferences][beacon ID][sensor data]), where the data types inparenthesis are filled during the resource identifier generation and/orupdate. However, storage and application of generation rules can beperformed by any suitable entity.

Determining a resource identifier can be performed at predetermined timeintervals (e.g., according to a temporal-based generation rule; everysecond; every minute; every hour; etc.), in temporal relation (e.g., inparallel, serially, substantially concurrently, etc.) to a generationcondition (e.g., dynamically determining resource identifiers based oncollected beacon data, such as determining a new resource identifier inresponse to motion data detecting movement of the beacon and/orsurrounding entities; determining a resource identifier in response toreceiving a content identifier and/or content; determining a newresource identifier in response to a receiving resource requestassociated with a broadcasted resource identifier; in response toanalytics data satisfying a condition, such as an impression orclickthrough associated with a broadcasted resource identifier; etc.)and/or other suitable conditions, and/or at any suitable time andfrequency. In an example, different broadcasting beacons can generateresource identifiers corresponding to the same content. In a specificexample, the method 100 can include, extracting beacon data for a firstbeacon from a resource request for a first resource identifier (e.g.,https://example1.info/[beacon id1][sensor data1]) associated with afirst content identifier; in response to the beacon data satisfying athreshold condition (e.g., a state of charge below a threshold; usermovement, such as in a particular direction towards a section of amerchant store; temperature above a threshold; etc.), determining asecond resource identifier (e.g., https://example1.info/[beaconid2][sensor data2]) for broadcast by a second beacon based on the firstcontent identifier (e.g., where the second beacon broadcasts a resourceidentifier leading to presentation of first content identified by thefirst content identifier) and a second beacon identifier (e.g., wherethe second beacon identifier is associated with the first beaconidentifier; where the second beacon is at a distance below a thresholddistance from the first beacon; where the first and second beacons areowned by the same beacon owner; where the beacon profiles for the firstand the second beacons share historic delivery of content similar to thecontent identified by the first content identifier; etc.). In thisspecific example or other examples, the method 100 can optionallyinclude: associating the second beacon identifier with a second contentidentifier identifying second content (e.g., related to the firstcontent; independent from the first content; default content associatedwith the second beacon; etc.); determining a supplementary resourceidentifier based on the second content identifier and the second beaconidentifier; and broadcasting the second resource identifier and thesupplementary resource identifier (e.g., in alternation; concurrently;serially; at scheduled time periods; based on beacon data; etc.) at thesecond beacon. However, determining resource identifiers can beperformed in any suitable manner.

As shown in FIGS. 1-3, broadcasting a resource identifier with one ormore beacons S120 can function to disseminate one or more resourceidentifiers associated with content to be verified (e.g., by a verifyingentity), and/or presented to a user at a user device. For example,broadcasting can including broadcasting a resource identifier from abeacon to a user device associated with a user proximal the beacon,where the user device is configured to transmit the resource identifierto a verifying entity. Additionally or alternatively, the method 100 caninclude broadcasting content directly (e.g., without the intermediary ofa resource identifier), and/or any other suitable data.

Broadcasted resource identifiers are preferably transmitted to a userdevice (e.g., a user device within a threshold distance to the beacon; auser device that subsequently transmits a broadcasted resourceidentifier to a verifying entity, etc.), but can be directly transmittedto a verifying entity (e.g., a verifying entity device), a beaconcontrol system (e.g., a remote computing system, etc.) associated with afirst party and/or third party, and/or to any suitable component.Broadcasting is preferably wireless (e.g., through Bluetooth Low Energy,Bluetooth Long Range, etc.), but can be through any suitablecommunication means. Broadcasting resource identifiers is preferablycontinuously performed during operation of a beacon, but canadditionally or alternatively be performed in response to satisfactionof broadcasting conditions. Broadcasting conditions can include any oneor more of: user device data (e.g., detection of a user device that hasopted in to receive broadcasted resource identifiers, detection of aparticular user device type, user device location in relation tobeacons, etc.), temporal conditions (e.g., broadcasting resourceidentifiers during specific time periods, at time intervals, etc.),beacon conditions (e.g., based on beacon sensor data, traffic data,state of charge, etc.) and/or any suitable conditions.

Any number of resource identifiers can be broadcasted by any number ofbeacons (e.g., different resource identifiers generated based ondifferent beacon communication protocols, etc.). In a variation, themethod 100 can include coordinating the broadcasting of one or moreresource identifiers amongst a set of beacons. In an example,coordinating can include communicating a priority resource identifierbetween beacons for each beacon to broadcast. In another example,coordinating can include disabling broadcasting for a beacon (e.g., torestrict the number and/or type of resource identifiers broadcasted inan area). In a specific example, the method 100 can include disabling abeacon (e.g., through a command transmitted by a beacon control system;through a rule stored at the beacon; etc.) from broadcasting a resourceidentifier in response to beacon data (e.g., extracted from a resourcerequest; sampled at a beacon sensor) satisfying a threshold condition(e.g., a state of charge below a threshold). In examples, disabling oractivating broadcasting can be based on other sensor data, time of day,scheduling of communications (e.g., scheduling communications based onbeacon data collected from resource identifiers; scheduling broadcastingin temporal relation with dissemination of firmware updates across thenetwork of beacons; etc.), and/or other suitable data. However,broadcasting resource identifiers can be performed in any suitablemanner.

As shown in FIG. 1-3, the method 100 can optionally include receivingthe resource identifier at a processing system (e.g., remote system)associated with a verifying entity, which can function to facilitateverification of content associated with received resource identifiers.The received resource identifier is preferably a broadcasted resourceidentifier (e.g., originating at one or more beacons), but canadditionally or alternatively be any suitable resource identifier (e.g.,a resource identifier transmitted from a first party beacon controlsystem; a different form of the resource identifier; etc.). Invariations, the method 100 can include one or more of: transmitting aresource identifier from a beacon to a receiving device (e.g., userdevice, another beacon, first party processing system, etc.);transmitting the resource identifier to a client on the receiving device(e.g., an executing application); and/or transmitting the resourceidentifier to a processing system associated with a verifying entity. Inone example, the resource identifier broadcast by the beacon is receivedby a client (e.g., browser application, operating system application,third party application, etc.) running on a user device, where theclient forwards the resource identifier to the verifying entity.

The method 100 can additionally or alternatively include transmitting aresource request (e.g., an HTTP request from a verifying entity) toaccess content associated with the resource identifier. Resourcerequests are preferably transmitted to a first party processing system(e.g., a beacon control system at which content is stored), but canoptionally be transmitted to processing systems associated with thirdparties and/or any entity. In a variation, transmitting a resourcerequest can be based on comparisons with historic resource identifiers.For example, the method 100 can include receiving a resource identifier;comparing the resource identifier with historic resource identifiers(e.g., received from one or more user devices); transmitting a resourcerequest in response to the resource identifier failing to match ahistoric resource identifier; and returning stored content in responseto the resource identifier matching a historic resource identifier.Additionally or alternatively, transmitting resource requests can bebased on temporal parameters, user device data (e.g., location,operating system, device type, etc.), and/or other suitable parameters.However, receiving the resource identifier at a processing systemassociated with a verifying entity can be performed in any suitablemanner.

As shown in FIGS. 1-3 and 4, processing a resource request S130 canfunction to receive a resource request; resolve a beacon identifier(e.g., based on extracted beacon data); extract beacon data from theresource request; select a content identifier; and/or perform othersuitable processes for facilitating content delivery. A resource requestpreferably includes and/or is associated with one or more resourceidentifiers (e.g., where the resource request includes passing theresource identifier through a proxy; where the resource request includesdata extracted from the resource identifier; etc.), but can additionallyor alternatively include: user device information (e.g., user devicetype, IP address, location, operating system, applications, etc.) for auser device associated with the resource request, user data (e.g.,profile information; user account information; preferences, demographic,location history, purchase history, shopping patterns, temporalpatterns, etc.), and/or any suitable information.

Processing the resource request can be based on: resource identifiergeneration rules (e.g., used by a beacon control system to resolvebeacon data from a resource identifier generated by the rule; etc.),beacon data (e.g., historic beacon data, beacon data across a set ofbeacons, beacon data extracted from the resource request and/or otherrequests, such as for selecting a relevant content identifier, etc.),user data (e.g., user profiles stored by the beacon control system andidentified based on user device data extracted from the resourcerequest; user account information associated with user devices receivingresource requests; etc.), user device data (e.g., included in theresource request; etc.), and/or any other suitable data. For example,processing can include textually parsing the characters of the resourceidentifier (e.g., to extract a beacon identifier) based on textualpatterns defined by a generation rule (e.g., stored at a beacon and afirst party beacon control system). However, processing the resourcerequest can be based on any suitable techniques including naturallanguage processing, machine learning, decryption (e.g., with a privatekey paired to a public key stored at the beacon associated with theresource request), and/or other suitable approaches.

Processing a resource request preferably includes receiving the resourcerequest. Subsequent processing operations are preferably performed inresponse to receiving the resource request, such as in real-time, butcan additionally or alternatively be batched, processed at apredetermined frequency (e.g., processing a resource request every Nseconds), in response to satisfaction of conditions (e.g., receivingconfirmation from a content provider, confirming legitimacy ofassociated content, etc.), and/or at any suitable time. In a variation,processing a set of resource requests (e.g., associated with multipleuser devices, associated with a single user device, etc.) can includegenerating a resource request ranking (e.g., prioritizing resourcerequests to process, to deny; temporally sequencing processingoperations to perform on resource requests; etc.), which can be based onany one or more of: resource request time (e.g., broadcasting time ofthe associated resource identifier, receipt time at the processingsystem associated with the entity processing the resource request,etc.), beacon owner identifier (e.g., associated with beacon ownerpreferences for content delivery), verifying entity identifier (e.g.,prioritizing resource requests from a first verifying entity over asecond verifying entity), content provider identifier (e.g.,prioritizing a resource request associated with content from a beaconcampaign with the highest bid) user device information (e.g.,prioritizing resource requests for content scheduled to be immediatelydelivered based on user device information; prioritizing based on userdevice location proximity to the beacons associated with the resourcerequests; etc.), and/or any suitable criteria. However, receiving and/orranking resource requests can be performed in any suitable manner.

Processing a resource request can include resolving a beacon identifier,which can facilitate retrieval of content (e.g., stored in associationwith the beacon identifier), association of beacon data (e.g., with thebeacon identifier), and/or generation of beacon-specific beaconanalytics (e.g., based on data associated with the beacon identifier).The resolved beacon identifier is preferably for the beacon thatbroadcasted the resource identifier associated with the resourcerequest, but a resource request can include any number of beaconidentifiers identifying any suitable beacon. In examples, resolving abeacon identifier can include resolving a non-unique beacon identifier(e.g., a beacon identifier associated with and/or broadcasted bymultiple beacons; a beacon identifier selected by a beacon owner; ashortened beacon identifier included in a resource identifier compliantwith URL restrictions; etc.). Resolving a beacon identifier (e.g.,mapping the shared beacon identifier to a manufacturer beacon identifierfor the beacon associated with the resource request) is preferably basedon one or more identifier generation rules (e.g., used to generate theresource identifier from which the beacon identifier is resolved; etc.)but can additionally or alternatively be based on any one or more of:beacon data (e.g., sensor data, traffic data, etc.), user deviceinformation (e.g., location, user device type, associated user account,etc.), beacon communication protocol, and/or any other suitableinformation.

In a first example, the method 100 can include: transforming amanufacturer beacon identifier into a shortened beacon identifier basedon an identifier generation rule; including the shortened beaconidentifier in the resource identifier; receiving a resource requestincluding the resource identifier; extracting the shortened beaconidentifier from the resource request; transforming the shortened beaconidentifier back into the manufacturer beacon identifier based on theoperations used by the identifier generation rule. In examples,resolving a beacon identifier based on identifier generation rules caninclude extracting contextual data (e.g., beacon data, user device data)from the resource request based on the identifier generation rules(e.g., used to include the contextual data in the resource identifier);and resolving the beacon identifier based on the contextual data (and/orthe non-unique beacon identifier included in the resource identifier).In a second example, resolving a beacon identifier can include comparingextracted beacon data (e.g., from the resource request) to historicalbeacon data corresponding to the manufacturer beacon identifiersassociated with the beacon identifier; and resolving the beaconidentifier into the manufacturer beacon identifier corresponding to thehistorical beacon data with greatest similarity (e.g., in relation todata patterns such as sensor data patterns, values, etc.) to theextracted beacon data. In a specific example, the extracted beacon datacan include the beacon location, where the beacon can include a locationsystem (e.g., GPS system). In a third example, resolving a beaconidentifier can include determining a location of a user device (e.g.,based on location data sampled at the user device and included in theresource request, based on IP address, etc.) associated with theresource request; and resolving the beacon identifier into themanufacturer beacon identifier identifying a beacon (e.g., identified bythe beacon identifier) in closest locational proximity to the locationof the user device. In a fourth example, resolving a beacon identifiercan include resolving a user device identifier (e.g., by receipt in theresource request, by analyzing the resource request, etc.); retrieving auser pattern (e.g., interactions with beacons, location, motion,shopping, user device information, etc.) associated with the user deviceidentifier; and filtering manufacturing beacon identifiers based on theuser pattern. However, resolving a beacon identifier can be otherwiseperformed.

Processing a resource request can include extracting beacon data (e.g.,from a resource identifier in the resource request). Extracted beacondata is preferably associated with the beacon broadcasting the resourceidentifier associated with the resource request, but can additionally oralternatively be associated with one or more secondary beacons (e.g.,where the broadcasting beacon received the secondary beacons' data priorto broadcasting the resource identifier; etc.) and/or can be associatedwith any other suitable data. In an example, a resource requestassociated with a beacon can include beacon data for multiple beacons(e.g., a first beacon transmitting first beacon sensor data to a secondbeacon that is broadcasting resource identifiers, where the secondbeacon can generate resource identifiers including sensor data from thefirst and the second beacons; where the second beacon can broadcastresource identifiers in alternation to alternate between broadcastingfirst resource identifiers with first beacon sensor data and secondresource identifiers with second beacon sensor data; distributing beacondata cross a plurality of beacons for broadcasting to improve beaconnetwork efficiency; etc.). In other examples, extracting the beacon datacan include: decoding, associating with a temporal indicator, storing inassociation with a beacon identifier, and/or any other suitableprocessing techniques. However, extracting beacon data and/or otherwiseprocessing resource requests can be performed in any suitable manner.

Processing a resource request can include selecting a content identifier(e.g., where the content identifier can be included in a response to theverifying entity; where the content identifier can be used to retrieveand deliver content to the user device and/or verifying entity; etc.). Acontent identifier can be selected from a set of content identifiers.For example, the resource identifier included in the resource requestcan be associated with a plurality of potential content identifiers thatcan be selected from for delivering different content (e.g., selectingcontent identifiers to optimize for analytics metrics, forpersonalization, etc.). The set of content identifiers can be initiallyreceived (e.g., at the beacon control system) from one or more contentproviders, for one or more beacons, for one or more resourceidentifiers, and/or from any suitable entities. Any number of contentidentifiers can be selected for any number of beacons and/or resourceidentifiers. In a first specific example, the method 100 can includereceiving a second resource request (e.g., where the first resourcerequest was associated with a first resource identifier corresponding toa first beacon) associated with a second beacon (e.g., identified by asecond beacon identifier associated with a set of content identifiersthat is additionally associated with a first beacon identifieridentifying the first beacon); extracting the second beacon data basedon the second resource request; and selecting a second contentidentifier from the set of content identifiers based on the secondbeacon data (e.g., where a first content identifier was selected fromthe set of content identifiers for the first resource request). In asecond specific example, multiple content identifiers can be selectedfrom a set of content identifiers (e.g., where a first contentidentifier, selected based on extracted beacon data, can be used in aresponse to the resource request, and a second content identifieridentifying complementary content can be selected for transmission to abeacon for presentation of the complementary content, such as throughbroadcast by the beacon or through presentation at a television displayat a merchant store, as shown in FIG. 3; etc.). Alternatively, a beaconidentifier and/or resource identifier can be associated with a singlecontent identifier, where selecting a content identifier can includemapping the beacon identifier (e.g., resolved from the resourcerequest), resource identifier, and/or other suitable data to the contentidentifier.

In a first variation, selecting a content identifier can be based onbeacon sensor data. In a first example, the method 100 can include:sampling first sensor data at a first sensor of a first beacon;determining a first resource identifier based on the first sensor data;extracting the first sensor data from a resource request associated withthe first resource identifier; and selecting a first content identifierfrom the set of content identifiers based on the first sensor data(e.g., selecting a warm-weather clothing advertisement over acold-weather clothing advertisement in response to temperature sensordata over a threshold; selecting content with brighter colors inresponse to ambient light data indicating darkness; selecting contentapplicable to a wide demographic of users in response to detectingbeacon motion based on motion sensor data; etc.).

In a second example, sensor data from a set of beacons (e.g., beaconsproximal each other) can be used in selecting a content identifier(e.g., for a resource request corresponding to a single beacon includedor excluded from the set of beacons; etc.). In a specific example,content identifier selection corresponding to a first beacon can bebased on motion data from a proximal second beacon being moved towardsthe first beacon (e.g., where the second beacon is attached to aproduct, and selected content can include an advertisement for acomplementary product; etc.). In another specific example, sensor dataof a given type collected across a plurality of beacons can be combined(e.g., average, median, etc.) and used in content identifier selection.In another specific example, approaches (e.g., machine learningapproaches) leveraging correlations between historic sensor data andhigh-performing (e.g., in relation to analytics metrics) content can beused to guide content identifier selection. In an illustration, themethod 100 can include determining a set of analytics metrics for theset of content identifiers (e.g., number of clickthroughs for each ofthe content served, etc.), the set of analytics metrics associated withpresentation of the set of content during a time period; determiningcorrelations between the set of analytics metrics and a set of beacondata associated with the time period (e.g., beacon data values when auser accessed a piece of content); and selecting the content identifierfrom the set of content identifiers based on the correlations andcurrent beacon data.

In a third example, selecting a content identifier can be based onlocation data (e.g., indicating location of a user device in relation toone or more beacons; indicating locations of beacons; etc.). Determininglocation can be based on signal data (e.g., signal quality; receivedsignal strength indicators; Wi-Fi positioning system parameters; signalangle of arrival with directional sensors associated with the beaconsand/or user devices; signal time of arrival; etc.), visual markers(e.g., determining location of a beacon visual marker, determininglocation of visual markers positioned around a merchant store,determining a location relative visual markers positioned in a room andcaptured by an optical sensor of the user device; etc.), optical data(e.g., camera data, light sensor data, etc.); audio data, temperaturedata; inertial measurements (e.g., footsteps tracked by motion sensorsof the user devices), magnetic positioning, and/or other suitablelocation-associated data (e.g., sampled by the beacons, user devices,etc.). In a specific example, determining user device location (e.g., inrelation to a beacon) can be based on beacon data from a set of beacons(e.g., motion data, signal data from communications between beaconsand/or user devices; etc.). In another specific example, determininguser device location in relation to a beacon can include triangulationwith a set of beacons, such as through processing resource requestscorresponding to resource identifier broadcasts from the set of beaconsduring a time period (e.g., within a threshold period of time with eachother), extracting beacon data from the resource requests, andperforming triangulation based on the beacon data. In another specificexample, for a beacon associated with a museum exhibit in a museum, amuseum map can be selected in response to a user device distance above adistance threshold from the beacon, and specific contextual informationabout the exhibit can be selected in response to the user devicedistance below the distance threshold. However, selecting identifiersbased on sensor data can be performed in any suitable manner.

In a second variation, selecting a content identifier can be based onuser device data (e.g., selecting content with formatting compatibilitywith the user device specifications; selecting advertisements promptingdownload of mobile applications that are executable on the user deviceoperating system; etc.). In a first example, processing a resourcerequest can include extracting user device data (e.g., user devicesensor data); and selecting the content identifier based on the userdevice data (and/or beacon data) (e.g., processing location sensor dataof the user device with sensor data of the beacon to determine locationof the user device in relation to the beacon; etc.). In a secondexample, user device data can include and/or be mapped to user data(e.g., user profiles including purchase history, consumer preferences,etc.) for personalizing content selected for delivery. In a thirdexample, user device data and/or other suitable data can be leveraged indetermining a location of a number of users (e.g., proximal one or morebeacons, within a geofence, etc.), which can be used in contentidentifier selection. However, selecting identifiers based on userdevice data can be performed in any suitable manner.

In a third variation, selecting a content identifier can be based oncontent provider preferences (e.g., monetary bids, delivery preferencessuch as geofences associated with delivery for different content, sensordata conditions for delivery such as proximity of user device to beaconto initiate delivery of a piece of content, etc.). For example, a set ofcontent identifiers can be associated with a set of content providers,where the method 100 can include receiving a set of preferences from theset of content providers; and selecting the set of content identifiersbased on the set of preferences (and/or other suitable data such asbeacon data) (e.g., using temperature sensor data to rank contentidentifiers for different types of food based on preferences for contentdelivery at specified ambient temperature ranges; ranking contentidentifiers based on associated monetary bids and correlations betweencontent performance and beacon sensor data; etc.). However, selectingcontent identifiers based on content provider preferences can beotherwise performed.

In a fourth variation, selecting a content identifier can be based onhistoric selections of content identifiers. In examples, selectedcontent identifiers can rotate, alternate, and/or be selected in anysuitable pattern. In a specific example, selecting a second contentidentifier (e.g., corresponding to a second beacon associated with a setof content) can be in response to previously selecting a first contentidentifier (e.g., corresponding to a first beacon associated with theset of content) for a response to a preceding resource request. However,selecting content identifiers based on any suitable data can beperformed in any suitable manner.

Processing a resource request is preferably performed by a processingsystem (e.g., remote system) associated with the first party, but canadditionally or alternatively be performed by processing systemsassociated with content providers and/or other suitable entities. Theresource request is preferably from a verifying entity (e.g., wherecontent transmitted to the requesting verifying entity can be used bythe verifying entity to verify the content), but can be from a contentprovider (e.g., to preview the content associated with the contentprovider), a user device, and/or any suitable entity. Processing aresource request can be performed at predetermined time intervals, intemporal relation to a condition (e.g., in response to receiving aresource request; based on resource request ranking; in response toreceiving resource requests including certain types of data; etc.),and/or at any suitable time and frequency. However, processing resourcerequests can be performed in any suitable manner.

As shown in FIG. 3, transmitting a response to a resource request S140can function to facilitate delivery of requested content (e.g., to averifying entity; directly to a user device; etc.) for presentation toone or more user devices. The response preferably includes a contentidentifier, but can additionally or alternatively include the contentitself (e.g., retrieved based on the content identifier), beacon data,and/or any other suitable data (e.g., data extracted from the contentidentifier). Transmitted content is preferably identified by one or morecontent identifiers (e.g., selected during processing of a resourcerequest, such that transmitting a response is based on extracted beacondata and content identifiers selected based on the extracted beacondata), but can be otherwise identified. The content identifier ispreferably associated with the beacon identifier and/or the resourceidentifier corresponding to the resource request, but can be otherwiseassociated. The content identifier-to-beacon identifier association canbe determined by the beacon owner, content provider, or any othersuitable entity, such as at a web interface. The association can bestored and managed by the first party, the beacon owner, and/or by anyother suitable entity. The content identifier can be the resourceidentifier, a pointer or filepath for content stored by the systemreceiving the resource request, an identifier different from theresource identifier (e.g., a URI, URL, and/or other identifier pointingto an external database, such as http://coke.ad.com/yyy), and/or be anyother suitable identifier. The content identifier is preferably static,but can be dynamic. Content and/or other suitable data can be in anysuitable format including: text, verbal, visual, audio, haptic, etc.Content can include any of: content title, description, associated media(e.g., favicons, graphics, video, audio, etc.), content associated withthe content identifier URI, identifier resource identifiers (e.g., aresource identifier redirected to by a broadcasted resource identifier,etc.) and/or other suitable content. Content can be transmitted in anyform including: notifications (e.g., text message, push notification,e-mail, in-application notification, etc.), resource identifiers (e.g.,linking to the content), and/or any suitable form.

Transmitting a response is preferably performed by a first partyprocessing system, but can optionally be by a processing systemassociated with a content provider, verifying entity, and/or othersuitable entity. Transmitting a response can be directly to one or moreuser devices (e.g., using user device identifier received with theresource request), to a verifying entity processing system that canverify and/or otherwise process the content prior to transmission to theuser device, to any suitable component prior to the user device, and/orto any suitable endpoint. In a variation, transmitting a response caninclude retrieving the content associated with the content provider(e.g., based on the content identifier), and transmitting the retrievedcontent to a suitable endpoint (e.g., user device). The content can beretrieved from first party storage (e.g., a content database storingcontent in association with one or more beacon identifiers), from aprocessing system associated with the content provider (e.g., based on aresource identifier from a content provider), and/or otherwise obtained.The content can be retrieved at a predetermined frequency, in responseto a resource request, in response to initiation of a beacon campaign,and/or at any suitable time. In an example, storing content forsubsequent retrieval can be in response to verifying that a contentprovider identifier for the content provider is associated with asuitable permissions level (e.g., permitting the content provider toserve content in relation to beacons and/or locations selected by thecontent provider), but any suitable entity can modify and/or beassociated with any suitable permissions level (e.g., denying contentdelivery, permitting delivery of specific types of content based oncontent type, permitting content delivery based on beacon identifiers,location, bids, user preferences, etc.).

In a first variation, transmitting a response can include transmittingpersonalized content to a user device based on a user profile (e.g.,generated from user device data, user data, etc.) for the userassociated with the user device. In a second variation, transmitting aresponse can include transmitting content from multiple contentproviders to a user device (e.g., for serial presentation based onscheduling parameters, for parallel presentation, for presentationwithin a single application executing on the user device, forpresentation within multiple applications, etc.). Scheduling parameterscan be based on bids by content providers, user preferences, user devicedata, user data, etc. In a third variation, transmitting a response canbe performed according to presentation parameters (e.g., temporalparameters for when to present content, form of content, etc.).

Transmitted responses can include any number of content identifiersand/or amount of content associated with any number of entities. In avariation, the method 100 can include transmitting a response for eachresource request and/or resource identifier received in association withthe user device (e.g., transmitting first content for a first resourcerequest, and transmitting second content for a second resource request).In another variation, the method 100 can include transmitting a singleinstance of content in response to receiving multiple resource requestsand/or resource identifiers for the same content within a predeterminedtime period for a single user device. In another variation, the methodtoo can include transmitting a response based on a ranking of a set ofresource identifiers and/or a set of content providers. Ranking can bebased on bidding, user device location (e.g., in relation to beacons),user preferences, beacon owner preferences, and/or other suitablecriteria. For example, the method 100 can include associating a resourceidentifier with a first and a second content from a first and a secondcontent provider, respectively; receiving a resource request includingthe resource identifier; and prioritizing transmission of the firstcontent (e.g., sending the first content before the second content;sending only the first content, etc.) based on the first contentprovider setting a higher bid over the second content provider. However,transmitting a response can be performed in any suitable manner.

As shown in FIG. 4, the method 100 can optionally include generatingbeacon analytics S150, which functions to track user interaction withcontent and/or beacons, in order to generate analytics for presentationto a suitable entity (e.g., content provider, beacon owner, etc.).Beacon analytics can include any suitable analytics metric typesrelating to one or more of: impressions (e.g., of content),clickthroughs (e.g., of resource identifiers included in content),conversions (e.g., associated with the content; account signups; productpurchases, etc.), geolocation, traffic data (e.g., for a given location,for a given user population, etc.), an estimated number of user devicesin an area (e.g., within a threshold distance of a beacon, within anarea defined by a set of beacons, etc.), device types, or any othersuitable metric. Generating beacon analytics is preferably performed ata processing system associated with a first party, but can additionallyor alternatively be performed at a beacon, at a content providerprocessing system, and/or at any suitable component.

In a first variation, tracking number of impressions for a content(e.g., an advertisement) associated with a content provider can be basedon number of resource requests for the content, number of transmissionsof the content, and/or other suitable criteria. In a second variation,tracking number of clickthroughs for a resource identifier can includetransmitting a resource identifier for a first party domain (e.g., forserving content, for redirecting to a content provider domain, etc.);and tracking visits to the domain from the resource identifier. In athird variation, generating beacon analytics can include generatingtraffic data, which can include any one or more of: user device data(e.g., number of user devices within a threshold distance from a beaconover a time period, geolocation of the user device, types of userdevices, etc.), user data (e.g., number of times a user has entered aparticular area, etc.) and/or other suitable traffic information. Forexample, the method 100 can include collecting, at one or more beacons,beacon data based on wireless signals (e.g., Bluetooth Low Energy)received from proximal user devices; and generating traffic data basedon the beacon data. In a fourth variation, generating beacon analyticscan be based on correlations between metric types and sensor data. Forexample, beacon analytics can correlate traffic data patterns (e.g., anincreased amount of traffic in a retail store) with temperature data(e.g., lower temperatures from using air conditioning) sampled at abeacon located within the retail store.

In a fifth variation, generating beacon analytics can be for anycombination of beacons (e.g., a beacon fleet) and/or locations. Forexample, beacon analytics can include an average number of contentimpressions per beacon in a first location versus a second location.

In a sixth variation, as shown in FIG. 4, generating beacon analyticscan include generating cross-packet type analytics (e.g., comparingmetrics for Physical Web broadcasts versus non-Physical Web broadcasts).For example, the method 100 can include: determining a first analyticsmetric for content based on a first set of beacon broadcasts (e.g., at afirst beacon) associated with a first packet type (e.g., including aresource identifier associated with the content); determining a secondanalytics metric for the content based on a second set of beaconbroadcasts (e.g., at a first beacon, at a different beacon, etc.)associated with the second packet type (e.g., associated with adifferent resource identifier type; independent from resourceidentifiers; etc.); and determining a cross-packet type metric for thecontent based on a comparison between the first and second analyticsmetrics. However, determining beacon analytics can be performed in anysuitable manner.

4. System.

As shown in FIG. 3, embodiments of the system 200 include a beaconcontrol system 210 and one or more beacons 220 (e.g., first beacon 220′,second beacon 220″, etc.), but can additionally or alternatively includean interface 230, a verification system, a content provider system,and/or any other suitable components. Components of the system 200 canbe configured in any manner analogous to U.S. application Ser. No.15/590,939 filed 9 May 2017 and/or U.S. application Ser. No. 15/620,014filed 12 Jun. 2017, each of which are incorporated in its entirety bythis reference. The beacon control system 210 functions to determineidentifier generation rules, process resource requests, transmitresponses to resource requests, and/or perform any suitable portion ofthe method 100 (e.g., generate resource identifiers). The beacon controlsystem 210 can include a content database (e.g., storing identifiers,rules, beacon data, user device data, and/or other suitable data inoptimized associations with each other to improve data storage andretrieval for facilitating content delivery, etc.), computing systems(e.g., a remote computing system), and/or any other suitable components.However, the beacon control system 210 can be configured in any suitablemanner. Beacons 220 function to generate and broadcast resourceidentifiers, and/or perform other suitable portions of the method 100.Beacons 220 can include: a wireless communication system (e.g., forreceiving content identifiers, for broadcasting resource identifiers,for receiving rules, etc.), a processing system (e.g., for applyingrules to generate resource identifiers, etc.), sensors, power sources,data connectors, housings, and/or any other suitable components.However, beacons 220 can be configured in any suitable manner.

The system 200 can additionally or alternatively include an interface230 (e.g., web interface, application, etc.), which can function toenable management of beacon campaigns, presentation resource analytics,receipt and/or presentation content, and/or other suitable processes forfacilitating interactions between beacon systems, beacons 220, beaconowners, content providers, users, and/or other suitable entities. In avariation, as shown in FIG. 4, an interface 230 can include ageographical map including available location options and/or beaconoptions (e.g., mapped to location identifiers and/or beacon identifiers,respectively). The options can be selectable by a beacon owner (e.g., toview analytics and/or beacon campaigns associated with the selectedlocation and/or beacon), a content provider (e.g., to identify locationsand/or beacons 220 to bid upon for content delivery), a user (e.g., toview content associated with the location and/or beacon), and/or otherentity.

In another variation, the interface 230 can include a beacon ownerinterface. The beacon owner interface preferably enables a beacon ownerand/or authorized entities to set one or more preferences for: contentdelivery (e.g., preferred content format, prioritizing communicationsfrom selected content providers, permissions for content, enablingcontent delivery based on user location, demographic, device, etc.),beacons 220 (e.g., selecting a custom beacon identifier for broadcastingby the beacon, authorizing content providers to deliver content throughselected beacons 220, resource identifier generation rules, etc.),beacon campaign (e.g., bidding rules, etc.), beacon analytics (e.g.,metric types to track or transmit, sensor data types to collect ortransmit, analytics-related notifications, etc.), content templates,and/or any suitable preferences. In an example, the system 200 can beconfigured to receive, at a beacon owner interface, a content provideridentifier for a content provider; associate the content provideridentifier with a beacon identifier for a beacon owned by the beaconowner; and in response to associating the content provider identifier,provide a content provider interface that includes options for thecontent provider to transmit content to be delivered in association withthe beacon. However, a beacon owner interface can be otherwiseconfigured.

In another variation, the interface 230 can include a content providerinterface. The content provider interface preferably enables contentproviders to manage beacon campaigns, including managing one or more of:associations of content identifiers with beacons 220 (e.g., where theinterface 230 can be configured to receive a content identifier at aprompt associated with a beacon), preferences for selection of contentidentifiers from a set of content identifiers associated with a beacon220, target user parameters (e.g., based on demographic, location,device, time, beacon sensor data, traffic data, etc.), content deliveryparameters (e.g., campaign start time, campaign end triggers such astime money, ending a campaign based on number of impressions,conversions, clickthroughs, other beacon analytics, etc.), content(e.g., modifying the content to be delivered, personalizing the contentbased on user location in relation to a beacon 220, beacon sensor data,etc.) and/or any suitable parameters. Any number of beacon identifierscan be associated with any amount or types of content received from anynumber of content providers. However, a content provider interface canbe otherwise configured.

In another variation, the interface 230 can include a user interface(e.g., provided through an application on the user device, provided as aweb interface, etc.). The user interface can facilitate one or more of:filtering content (e.g., based on topic, distance, brand, type, etc.),browsing content, content receipt preferences (e.g., receiving contentin the form of text messages, privacy settings, purchase historysharing, etc.), and/or any other suitable activity. The user interfacecan present content in any suitable format (e.g., notification in awidget, notification through an application, text message, etc.).However, a user interface, and/or other suitable interfaces 230 can beconfigured in any suitable manner.

The system 200 and/or components of the system can entirely or partiallybe executed by, hosted on, communicate with, and/or otherwise include: aremote computing system (e.g., a server, at least one networkedcomputing system, stateless, stateful), a local computing system, userdevices, databases, and/or by any suitable component. Communication byand/or between any components of the system and/or other suitablecomponents can include wireless communication (e.g., Bluetooth,Bluetooth Low Energy, WiFi, radiofrequency, etc.) and/or wiredcommunication. Any components of the system, and/or any portions of themethod 100 can apply employ machine learning approaches including anyone or more of: supervised learning (e.g., using logistic regression,using back propagation neural networks, using random forests, decisiontrees, etc.), unsupervised learning (e.g., using an Apriori algorithm,using K-means clustering), semi-supervised learning, reinforcementlearning (e.g., using a Q-learning algorithm, using temporal differencelearning), a regression algorithm (e.g., ordinary least squares,logistic regression, stepwise regression, multivariate adaptiveregression splines, locally estimated scatterplot smoothing, etc.), aninstance-based method (e.g., k-nearest neighbor, learning vectorquantization, self-organizing map, etc.), a regularization method (e.g.,ridge regression, least absolute shrinkage and selection operator,elastic net, etc.), a decision tree learning method (e.g.,classification and regression tree, iterative dichotomiser 3, C4.5,chi-squared automatic interaction detection, decision stump, randomforest, multivariate adaptive regression splines, gradient boostingmachines, etc.), a Bayesian method (e.g., naïve Bayes, averagedone-dependence estimators, Bayesian belief network, etc.), a kernelmethod (e.g., a support vector machine, a radial basis function, alinear discriminate analysis, etc.), a clustering method (e.g., k-meansclustering, expectation maximization, etc.), an associated rule learningalgorithm (e.g., an Apriori algorithm, an Eclat algorithm, etc.), anartificial neural network model (e.g., a Perceptron method, aback-propagation method, a Hopfield network method, a self-organizingmap method, a learning vector quantization method, etc.), a deeplearning algorithm (e.g., a restricted Boltzmann machine, a deep beliefnetwork method, a convolution network method, a stacked auto-encodermethod, etc.), a dimensionality reduction method (e.g., principalcomponent analysis, partial least squares regression, Sammon mapping,multidimensional scaling, projection pursuit, etc.), an ensemble method(e.g., boosting, boostrapped aggregation, AdaBoost, stackedgeneralization, gradient boosting machine method, random forest method,etc.), and/or any suitable form of machine learning algorithm. However,the system 200 can be configured in any suitable manner.

Although omitted for conciseness, the preferred embodiments includeevery combination and permutation of the various system components andthe various method processes, where the method processes can beperformed in any suitable order, sequentially or concurrently.

The system and method 100 and variations thereof can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions are preferably executed by computer-executable componentspreferably integrated with the system. The computer-readable medium canbe stored on any suitable computer-readable media such as RAMs, ROMs,flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component ispreferably a general or application specific processor, but any suitablededicated hardware or hardware/firmware combination device canalternatively or additionally execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the preferred embodiments of the invention withoutdeparting from the scope of this invention defined in the followingclaims.

We claim:
 1. A system for improved content delivery to a user device, the system comprising: a first beacon configured to: generate a first uniform resource identifier (URI) based on a generation rule; broadcast the first URI to a user device, wherein the user device is configured to access the first URI; a beacon control system, associated with the first URI, that is configured to: receive a resource request, associated with the first URI, from the user device; determine a first beacon identifier from the resource request, the first beacon identifier associated with the first beacon; identify a content URI associated with the first beacon identifier, wherein the content URI is associated with content hosted on a content provider domain; and transmit a response to the resource request based on the content URI.
 2. The system of claim 1, wherein the beacon control system stores the generation rule, wherein the beacon control system determines the first beacon identifier by resolving the first beacon identifier from the resource request using the generation rule.
 3. The system of claim 1, wherein the first beacon is configured to generate a new URI based on the generation rule at a predetermined frequency.
 4. The system of claim 3, wherein the generation rule comprises a random string generator, wherein each new URI comprises a random string generated by the random string generator.
 5. The system of claim 4, wherein the first URI further comprises: a host domain associated with the beacon control system; and a broadcast identifier associated with the first beacon and the first beacon identifier.
 6. The system of claim 5, wherein each new URI comprises the host domain.
 7. The system of claim 1, wherein the first beacon comprises a sensor, wherein the first beacon broadcasts the first URI in response to sensor data, sampled by the sensor, satisfying a threshold condition.
 8. The system of claim 7, wherein the sensor comprises a motion sensor sampling first beacon motion, wherein the first beacon broadcasts the first URI in response to first beacon motion exceeding a threshold motion.
 9. The system of claim 7, wherein the first URI encodes the sensor data, wherein the beacon control system is further configured to determine the sensor data from the resource request and store the sensor data in association with the first beacon identifier.
 10. The system of claim 1, wherein the response comprises a description of the content, wherein the beacon control system is further configured to: receive a content request from the user device based on the response; retrieve the content from the content URI; and present the content in response to receipt of the content request.
 11. The system of claim 10, wherein the beacon control system is further configured to: determine a set of analytics metrics for the content URI, the set of analytics metrics associated with presentation of the content during a time period; determine a correlation between the set of analytics metrics and a set of beacon data for the first beacon associated with the time period, wherein the set of beacon data is determined from received resource requests associated with the first beacon; and select the content URI from a set of candidate URIs associated with the first beacon identifier based on the correlation.
 12. The system of claim 1, wherein the beacon control system is further configured to: receive a second content URI in association with the first beacon identifier; receive a second resource request associated with the first URI, after receiving the resource request; and transmit a response to the resource request based on the second content URI.
 13. A method for improved content delivery, comprising: generating a first uniform resource identifier (URI) based on a generation rule associated with a beacon communication protocol; broadcasting the first URI to a user device, wherein the user device accesses the first URI; receiving a resource request associated with first URI in response to user device accessing the first URI; extracting a beacon identifier from the resource request; determining a content URI associated with the beacon identifier; and returning a response, associated with the content URI, in response to the resource request.
 14. The method of claim 13, further comprising: receiving a new content URI in association with the beacon identifier; receiving a subsequent resource request associated with the first URI; and returning a second response associated with the new content URI in response to the subsequent resource request.
 15. The method of claim 14, wherein the first URI is regenerated at a predetermined frequency faster than a refresh frequency.
 16. The method of claim 15, wherein the first URI comprises a random string generated based on the generation rule.
 17. The method of claim 16, wherein the first URI further comprises a host domain, wherein each regenerated first URI comprises the host domain.
 18. The method of claim 17, wherein: a beacon, identified by the beacon identifier, regenerates and broadcasts the first URI, wherein the first URI comprises a broadcast identifier determined based on the beacon identifier; a beacon control system, remote from the beacon and the user device and associated with the host domain, receives the resource request, extracts the beacon identifier, determines the content URI, and returns the response.
 19. The method of claim 13, further comprising: receiving a content request from the user device based on the response; retrieving content from the content URI, wherein the content hosted is on a content provider domain associated with the content URI; and presenting the content in response to receipt of the content request.
 20. The method of claim 13, further comprising: receiving multiple resource requests from the user device within a predetermined time window, wherein each resource request is associated with a different beacon identifier, wherein each beacon identifier is associated with a different physical location; and determining a user device location based on the physical locations associated with each of the different beacon identifiers. 